CSCI E-92: Application Note 17 Notes on Pausing the SysTick timer ---------------------------------- Keep track of CPU time (ticks) used by each process SYST_CVR counts down from the reload value (which is stored in the SYST_RVR). When in the quantum switching code, the process may have used its whole quantum or it may have yielded early. Check COUNTFLAG to determine if SYST_CVR has already counted to 0. What is the number of ticks used by the process? Issue in disabling SysTick while in ISR routines You could disable the SysTick timer while in an ISR, but unfortunately, the ENABLE bit is in the same word as the COUNTFLAG (see ARM Manual section B3.3.3, page 677 for the SYST_CSR register). But, fortunately, referring to the COUNTFLAG bit "This bit is read only." But, unfortunately, "COUNTFLAG is cleared to 0 by a software read of this register, and by any write to the Current Value register." So, all this means that you can implement disabling SysTick while in an ISR by using your own static flag to determine if SysTick is enabled or disabled and by writing SYST_CSR to disable SysTick when the first (possibly nested) ISR is entered and to enable SysTick when the last (possibly nested) ISR returns. Fortunately, writing SYST_CSR does not clear COUNTFLAG, so that information is not lost. Also, because we are not reading SYST_CSR to determine if the ENABLE bit is set, COUNTFLAG will not be cleared!